<?php 
class User_Role_Resource extends Model_Database
{
	private $_tb_name = '';
	const _DB_ACL	  = 'acl';
	public function __construct(){

		$this->_tb_name	= 'acl_resources';
	}

	/**
	 * 获得所有资源
	 *
	 * return array
	 *
	 */
	public static function get_all_resources()
	{
		$data	= DB::select('*')
					->from('acl_resources')
					->execute(self::_DB_ACL);
		return $data->as_array();
	}

	public function get_resources($offset, $limit)
	{
		$query	= DB::select('*')
					->from('acl_resources')
					->order_by('name')
					->offset($offset)
					->limit($limit)
					->execute(self::_DB_ACL);

		return $query->as_array();
	}

	public function count_all_resources()
	{
		$data	= DB::select(array('count("*")', 'sum'))
					->from('acl_resources')
					->execute(self::_DB_ACL);
		
		$rs		= $data->as_array();

		return empty($rs) ? 0 : $rs[0]['sum'];
	}

	/**
	 * 增加资源
	 *
	 * param string $resource_name
	 *
	 * 说明：数据库资源名称字段设置为唯一
	 *
	 * return boolean
	 */
	public static function insert_resources($resource_name)
	{
	
		$name	= strval($resource_name);

		if($name){

			$rs	= DB::insert('acl_resources')
					->columns(array('name'))
					->values(array($name))
					->execute(self::_DB_ACL);

			return empty($rs) ? false : true;
		}

		return false;
	}

	/**
	 * 根据ID 获得某个资源名称
	 *
	 * param int $id
	 *
	 * return boolean
	 *
	 */
	public static function get_one_resource_name($id)
	{
		$id	= intval($id);	
		if($id > 0)
		{
			$data	= DB::select('*')
						->from('acl_resources')
						->where('id', '=' ,$id)			
						->execute(self::_DB_ACL);
			$rs		= $data->as_array();

			return empty($rs) ? null :$rs[0]['name'];

		}
		return false;
	}

	/**
	 *	删除某个资源
	 *
	 *	param int $id
	 *
	 *  return boolean
	 *
	 */
	public function del_one_resource($id)
	{
		$id	= intval($id);

		if($id > 0)
		{
			$rs		= DB::delete($this->_tb_name)
						->where('id', '=', $id)
						->execute(self::_DB_ACL);

			return empty($rs) ? false : true;
		
		}
		return false;	
	}

	/**
	 * 批量删除资源
	 * 
	 * param  array $ids
	 *
	 * return boolean
	 *
	 */
	public function del_resources($ids)
	{
		
		if(! empty($ids) && is_array($ids))
		{
			$rs		= DB::delete($this->_tb_name)
						->where('id', '=', $id)
						->execute(self::_DB_ACL);

			return empty($rs) ? false : true;
		
		}
		return false;	
	}

}

?>
